<template>
  <div>
    <h1>人员列表</h1>
    <input type="text" placeholder="请输入名字" v-model="name" />
    <h3>第一个人的名字：{{ firstPersonName }}</h3>
    <h3 style="color: red">求和：{{ sum }}</h3>
    <button @click="add">添加</button>
    <button @click="addGuo">添加性郭的</button>
    <button @click="addServe">随机添加一个人</button>
    <ul>
      <li v-for="p in personList" :key="p.id">{{ p.name }}</li>
    </ul>
  </div>
</template>

<script>
import { mapState } from "vuex";
import { nanoid } from "nanoid";
export default {
  name: "Person",
  data() {
    return {
      name: "",
    };
  },
  computed: {
    personList() {
      return this.$store.state.personOptions.personList;
    },
    sum() {
      return this.$store.state.countOptions.sum;
    },
    //...mapState(['personList'])
    firstPersonName() {
      return this.$store.getters["personOptions/firstPersonName"];
    },
  },
  methods: {
    add() {
      const obj = { id: nanoid(), name: this.name };
      this.$store.commit("personOptions/ADD_PERSON", obj); //这快比较特殊
    },
    addGuo() {
      const obj = { id: nanoid(), name: this.name };
      this.$store.dispatch("personOptions/addPersonGuo", obj);
    },
    addServe(){
        this.$store.dispatch("personOptions/addPersonServe");
    }
  },
};
</script>

<style>
</style>